////////////////////////////////////////////////////////////////////
// Entete de gestion d'iso pour Chrono Cross
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
// Nemesis pour Terminus Traduction (tt_nemesis@yahoo.fr)
// Date de création :		30/07/03
// Dernière modification :	30/07/03
////////////////////////////////////////////////////////////////////

// Inclusions
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "Fichiers.h"
#include "Extensions.h"
#include "General.h"

// Constantes
#define ISO_NOM_MAX		100

// Infos sur les secteurs 2352/MODE2
#define SECTEUR_DEBUT 12
#define SECTEUR_NUM 4
#define SECTEUR_SUB 8
// Entete de 24 octets
#define SECTEUR_ENTETE (SECTEUR_DEBUT+SECTEUR_SUB+SECTEUR_NUM)
#define SECTEUR_DONNEES 2048
#define SECTEUR_ECC 280
// Secteur de 2352 octets
#define SECTEUR_TOTAL (SECTEUR_ENTETE+SECTEUR_DONNEES+SECTEUR_ECC)

// Type de secteur
#define SECT_TFICH	0
#define SECT_TFIN	1
#define SECT_TAUTRE 2

// Declarations
int Iso_Ouvre (char *iso);
int Iso_Ferme (void);
_int64 Iso_Position (void);
void Iso_Secteur_Saut (unsigned _int32 secteur);
void Iso_ECC_Saut (void);
void Iso_Entete_Saut (void);
int	Iso_Entete_Lit (int test);
void Iso_Entete_Modif (int type);
int Iso_Test_Debut(unsigned _int8 *debut);
int Iso_Test_Sub (unsigned _int8 sub[SECTEUR_SUB]);
void Iso_Flush(void);
void Iso_Adresses_Lit(unsigned _int32 *buffer);
void Iso_Adresses_Ecrit(unsigned _int32 *buffer);
void Iso_Secteur_Extrait(FILE *fich);
void Iso_Donnees_Extrait(FILE *fich,unsigned _int8 fin);
void Iso_Donnees_Insere(FILE *fich);